[alias] # git stamp - print a reposurgeon-style action stamp stamp = show -s --format='%cI!%ce' # git scommit - list most recent commit that matches . # Must also specify a branch to search or --all, after these arguments. scommit = "!f(){ d=${1%%!*}; a=${1##*!}; arg=\"--until=$d -1\"; if [ $a != $1 ]; then arg=\"$arg --committer=$a\"; fi; shift; git rev-list $arg ${1:+\"$@\"}; }; f" # git scommits - as above, but list all matching commits. scommits = "!f(){ d=${1%%!*}; a=${1##*!}; arg=\"--until=$d --after $d\"; if [ $a != $1 ]; then arg=\"$arg --committer=$a\"; fi; shift; git rev-list $arg ${1:+\"$@\"}; }; f" # git smaster - list most recent commit on master that matches . smaster = "!f(){ git scommit \"$1\" master --first-parent; }; f" smasters = "!f(){ git scommits \"$1\" master --first-parent; }; f" # git shs - show the commits on master that match . shs = "!f(){ stamp=$(git smasters $1); shift; git show ${stamp:?not found} $*; }; f" # git slog - start git log at on master slog = "!f(){ stamp=$(git smaster $1); shift; git log ${stamp:?not found} $*; }; f" # git sco - check out most recent commit on master that matches . sco = "!f(){ stamp=$(git smaster $1); shift; git checkout ${stamp:?not found} $*; }; f" [submodule] recurse = true [fetch] recurseSubmodules = true [http] version = HTTP/1.1